Field
Embodiments of the present invention generally relate to system cloning and, in particular, to a fast apparatus and method to clone a system for backup or replication.
Description of Related Art
Computer systems of varying scopes or deployment are used throughout a typical large enterprise. Enterprise-level computer systems are systems that may be used throughout an enterprise or to support enterprise-critical functions. For example, for an airline company, a reservation and booking system or a flight scheduling system may be an enterprise-level system. At a lower level of deployment, other systems (e.g., a department-level or functional-level system) may support a departmental-level organization or support a limited function. For example, department-level systems for an airline company may support one of accounting, sales and marketing, engineering, maintenance support, and so forth. At an even lower level, a computer system (either a real system or a virtual system such as a cloud-based system) may support individual employees.
A computer system may be characterized by its hardware and software assets, status, system state, and the like. Hardware characterization may include a list of servers used, memory and memory storage space available, communication links available, router connectivity, and so forth. Characterization of software assets may include a list of operating systems and application programs available on each server. Characterization of system state may include a list of what software is presently executing on each server, the state of each software (e.g., as indicated by a finite state machine model), data in volatile and non-volatile memory accessible to and/or used by each software, and so forth.
At times, it is necessary or desirable to clone a computer system, e.g., for backup or capacity purposes. For example, a backup of a computer system may be made by cloning all or part of the computer system, e.g., cloning at least the system state but not necessarily the hardware characterization. On the other hand, cloning by way of replication may be made when it is necessary to quickly ramp up processing capacity or capabilities. For example, an online retail merchant may want to replicate temporarily its computer systems devoted to sales and marketing during the period from Thanksgiving to Christmas, and release those assets later. However, the online retail merchant may want to replicate temporarily its computer systems devoted to accounting at the end of its fiscal year.
At times, it is necessary or desirable to restore a computer system from backups. For example, if a sales system or web site of an online merchant crashes, the merchant may not have any sales until the sales system or web site is restored. Therefore, there would be a need to restore such systems from backups as soon as possible.
Existing methods for cloning systems suffer from a variety of drawbacks. For example, a hot standby (e.g., a system that is constantly active and mirroring the state of a primary system) may be expensive in terms of hardware required, software licenses needed and maintenance cost (e.g., for utilities and staff), particularly for larger systems. Multiple virtual machines and hypervisors are also potentially expensive in terms of hardware and software if they are constantly kept hot. Cold standby backup systems (e.g., a backup brought online only when needed, such as upon primary system failure) may take an undesirably long time to take over for a failed system, and may not reflect the most recent state of the primary system prior to failure.
Therefore, a need exists to provide a system and method to clone computer systems quickly yet at low cost.